/* 
 * CpfConverter.java
 * Copyright (c) Faculdade Anhanguera de Anápolis.
 * Tecnologia em Análise e Desenvolvimento de Sistemas.
 * Projeto Multidisciplinar de Autoaprendizagem.
 *
 * Este software é confidencial e propriedade da Faculdade Anhanguera de Anápolis.
 * Não é permitida sua distribuição ou divulgação do seu conteúdo sem expressa autorização da Faculdade Anhanguera de Anápolis.
 * Este arquivo contém informações proprietárias.
 */
package br.com.pma.chamatec.converter;

import javax.faces.component.UIComponent;
import javax.faces.context.FacesContext;
import javax.faces.convert.Converter;
import javax.faces.convert.FacesConverter;

import br.com.pma.chamatec.util.ChamatecUtil;

/**
 * Converter para CPF.
 * 
 * @author Ludemeula Fernandes de Sá
 */
@FacesConverter(value = "cpfConverter")
public class CpfConverter implements Converter {
	/**
	 * @see javax.faces.convert.Converter#getAsObject(javax.faces.context.FacesContext,
	 *      javax.faces.component.UIComponent, java.lang.String)
	 */
	@Override
	public Object getAsObject(FacesContext context, UIComponent component, String value) {
		/*
		 * Irá converter CPF formatado para um sem pontos e traço. Ex.:
		 * 355.245.198-87 torna-se 35524519887.
		 */
		String cpf = value;
		if (value != null && !value.equals("")) {
			cpf = value.replaceAll("\\.", "").replaceAll("\\-", "");
		}

		return cpf;
	}

	/**
	 * @see javax.faces.convert.Converter#getAsString(javax.faces.context.FacesContext,
	 *      javax.faces.component.UIComponent, java.lang.Object)
	 */
	@Override
	public String getAsString(FacesContext context, UIComponent component, Object value) {
		/*
		 * Irá converter CPF não formatado para um com pontos e traço. Ex.:
		 * 35524519887 torna-se 355.245.198-87.
		 */
		if (value != null) {
			return ChamatecUtil.formataCPF(value.toString());
		}
		return null;
	}
}